package 操作;

import 实体.dbutils;
import 实体.会员卡;
import 实体.消费记录;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class 消费记录_操作 {
    public List<消费记录> 查询all() throws SQLException {
        try {
            List<消费记录> list=new ArrayList<>();
            Connection conn= dbutils.getCon();
            PreparedStatement stmt=null;
            ResultSet res=null;
            stmt=conn.prepareStatement("select * from 消费记录");
            res=stmt.executeQuery();
            list=result(conn,stmt,res);
            dbutils.close(conn,stmt,res);
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
        }
    }
    public List<消费记录> 搜索(String input) throws SQLException{
        try {
            List<消费记录> list = new ArrayList<>();
            Connection conn = dbutils.getCon();
            PreparedStatement stmt = null;
            ResultSet res = null;
            stmt = conn.prepareStatement("select * from  消费记录  where 卡号=?");
            stmt.setString(1,input);
            res = stmt.executeQuery();
            list = result(conn,stmt,res);
            dbutils.close(conn,stmt,res);
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
        }
    }
    public List<消费记录> 增加(String[] input) throws SQLException{
        try {
            List<消费记录> list=new ArrayList<>();
            Connection conn=dbutils.getCon();
            PreparedStatement stmt=null;
            ResultSet res=null;
            stmt=conn.prepareStatement("insert into 消费记录(卡号,姓名,消费时间,消费金额,存款金额,结存余额) value (?,?,?,?,?,?)");
            for (int i=0;i<input.length;i++){
                stmt.setString(i+1,input[i]);
            }
            stmt.executeUpdate();
            stmt=conn.prepareStatement("select * from 消费记录");
            res=stmt.executeQuery();
            list=result(conn,stmt,res);
            dbutils.close(conn,stmt,res);
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
        }
    }
    public List<消费记录> result(Connection conn,PreparedStatement stmt,ResultSet res) throws SQLException{
        List<消费记录> list=new ArrayList<>();
        try{
            while(res.next()){
                String 卡号=res.getString("卡号");
                String 姓名=res.getString("姓名");
                String 消费时间=res.getString("消费时间");
                String 消费金额=res.getString("消费金额");
                String 存款金额=res.getString("存款金额");
                String 结存余额=res.getString("结存余额");
                消费记录 s=new 消费记录(卡号,姓名,消费时间,消费金额,存款金额,结存余额);
                list.add(s);
            }
        }catch(SQLException e){
            e.printStackTrace();
        }
        finally
        {
            dbutils.close(conn,stmt,res);
        }
        return list;
    }

}
